package tracer

import (
	"contrib.go.opencensus.io/exporter/jaeger"
	"go.opencensus.io/trace" //❶
	"log"
)

func InitTracing() {
	trace.ApplyConfig(trace.Config{DefaultSampler: trace.AlwaysSample()})
	agentEndpointURI := "http://192.168.10.20:6831"
	collectorEndpointURI := "http://192.168.10.20:14268/api/traces" //❷
	exporter, err := jaeger.NewExporter(jaeger.Options{
		CollectorEndpoint: collectorEndpointURI,
		AgentEndpoint:     agentEndpointURI,
		ServiceName:       "product_info",
	})
	if err != nil {
		log.Fatal(err)
	}
	trace.RegisterExporter(exporter) //❸
}

//❶ 导入 OpenTracing 和 Jaeger 库。
//❷ 使用收集器端点、服务名和代理端点创建 Jaeger 导出器。
//❸ 使用 OpenCensus tracer 注册导出器。

/**
$ docker run -d --name jaeger \
  -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
  -p 5775:5775/udp \
  -p 6831:6831/udp \
  -p 6832:6832/udp \
  -p 5778:5778 \
  -p 16686:16686 \
  -p 14268:14268 \
  -p 9411:9411 \
  jaegertracing/all-in-one:latest
*/
